package com.kjzy.controller;

import com.github.pagehelper.PageInfo;
import com.kjzy.pojo.Appoint;
import com.kjzy.pojo.Devices;
import com.kjzy.pojo.Reservation;
import com.kjzy.pojo.User;
import com.kjzy.service.ReservationService;
import com.kjzy.service.TimeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import java.util.Date;

@Controller
public class ReservationController {
    @Autowired
    private ReservationService reservationService;
    @Autowired
    private TimeService timeService;
    @RequestMapping(value = "/jianshen_manage")
    public String jianshengManage() {
        // 1. 返回待跳转的逻辑视图名。本例中，将跳转
        // 到"/WEB-INF/jsp/admin/user_manage.jsp"。
        return "admin/jianshen_manage";
    }
    @RequestMapping("jiansheng.action")
    public String jiansheng(Reservation reservation, @RequestParam(defaultValue = "1") int pageNum,
                            @RequestParam(defaultValue = "10") int pageSize,
                            Model model) {
// 使用分页插件进行查询，返回分页结果
        PageInfo<Reservation> pageInfo = reservationService.findAllB(reservation, pageNum, pageSize);

        // 将分页信息存入Model中，供视图使用
        model.addAttribute("reservationList", pageInfo.getList());  // 用户列表
        model.addAttribute("pageInfo", pageInfo);  // 分页信息，包含页码、总记录数等
// 返回视图
        return "admin/jianshen_manage";

    }
    @RequestMapping("/deleteReservation.action")
    @ResponseBody
    public String deleteReservation(@RequestParam("id") Integer id){
        String result = reservationService.deleteReservation(id);
        // 3. 返回(删除用户的)结果，不是跳转到新页面。
        // 本例中，返回的不是一段JSON数据，就是一个普通的String数据("SUCCESS"
        // 或错误提示信息)。 但是，需要在方法上添加@ResponseBody注解。如果不添加该
        // 注解，SpringMVC会将待返回的String数据，误认为是待跳转新页面的路径值，即
        // 会误认为要跳转到/WEB-INF/jsp/SUCCESS.jsp或其它jsp页面。
        return result;
    }
    @RequestMapping(value = "/reservation.action", method = RequestMethod.POST)
    @ResponseBody
//    public String createTime(@RequestParam("id")Integer id,
//                             @RequestParam("username")String username,
//                             @RequestParam("projecot")String projecot,
//                             @RequestParam("time")Date time) throws Exception{
    public String createTime(@RequestBody Appoint appoint) throws Exception{
        // 3. 调用service层的方法实现：在用户表中新增一条用户记录。
        // 4. 返回(新增用户的)结果，不是跳转到新页面。
        String result=timeService.insertT(appoint);
        // 本例中，返回的不是一段JSON数据，就是一个普通的String数据("SUCCESS"
        // 或错误提示信息)。 但是，需要在方法上添加@ResponseBody注解。如果不添加该
        // 注解，SpringMVC会将待返回的String数据，误认为是待跳转新页面的路径值，即
        // 会误认为要跳转到/WEB-INF/jsp/SUCCESS.jsp或其它jsp页面。
        return result;
    }
    @RequestMapping("/findReservationById.action")
    @ResponseBody
    public Reservation findUserById(@RequestParam(value = "id") Integer id) {
        Reservation reservation=reservationService.findByid(id);
        return reservation;
    }
}
